﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using System.Web.UI;
using System.Web.UI.WebControls;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
using System.Data;
using System.IO;
using System.Text;

/// <summary>
/// Summary description for GerenciaArquivo
/// </summary>
public class GerenciaDiretorio : System.Web.UI.Page
{
    ConexaoMDBD Command = new ConexaoMDBD();

    public GerenciaDiretorio()
	{
		//
		// TODO: Add constructor logic here
		//
	}

    // Cria um diretório na pasta da aplicação web
    public String NomeDiretorioCriado(String TipoObjeto, String Sistema, String TeamProject, Boolean Apaga)
    {
        String NomeDiretorioCriado = @Server.MapPath("") + "\\DseProj\\SinaXX\\ORACLE\\DEV";

        if (TeamProject == "SinaCF")
        {
            if (Sistema == "BT - BTC - Banco de Títulos CBLC")
            {
                NomeDiretorioCriado = NomeDiretorioCriado + "\\BTC";
            }
            else
            {
                NomeDiretorioCriado = NomeDiretorioCriado + "\\Custodia";
            }
        }

        NomeDiretorioCriado = NomeDiretorioCriado.Replace("SinaXX", TeamProject);

        switch (TipoObjeto)
        {
            case "TABLE":
                //NomeDiretorioCriado = @Server.MapPath("") + "\\DseProj\\SinaXX\\ORACLE\\DEV\\ObjetosBanco\\Structure\\Tables".Replace("SinaXX", TeamProject);
                NomeDiretorioCriado = NomeDiretorioCriado + "\\ObjetosBanco\\Structure\\Tables";
                break;

            case "CHECK CONSTRAINT - NOT NULL":
                //NomeDiretorioCriado = @Server.MapPath("") + "\\DseProj\\SinaXX\\ORACLE\\DEV\\ObjetosBanco\\Structure\\Tables\\Constraints".Replace("SinaXX", TeamProject);
                NomeDiretorioCriado = NomeDiretorioCriado + "\\ObjetosBanco\\Structure\\Tables\\Constraints";
                break;

            case "CHECK CONSTRAINT":
                //NomeDiretorioCriado = @Server.MapPath("") + "\\DseProj\\SinaXX\\ORACLE\\DEV\\ObjetosBanco\\Structure\\Tables\\Constraints".Replace("SinaXX", TeamProject);
                NomeDiretorioCriado = NomeDiretorioCriado + "\\ObjetosBanco\\Structure\\Tables\\Constraints";
                break;
            
            case "PRIMARY KEY":
                //NomeDiretorioCriado = @Server.MapPath("") + "\\DseProj\\SinaXX\\ORACLE\\DEV\\ObjetosBanco\\Structure\\Tables\\Constraints".Replace("SinaXX", TeamProject);
                NomeDiretorioCriado = NomeDiretorioCriado + "\\ObjetosBanco\\Structure\\Tables\\Constraints";
                break;

            case "INDEX":
                //NomeDiretorioCriado = @Server.MapPath("") + "\\DseProj\\SinaXX\\ORACLE\\DEV\\ObjetosBanco\\Structure\\Tables\\Indexes".Replace("SinaXX", TeamProject);
                NomeDiretorioCriado = NomeDiretorioCriado + "\\ObjetosBanco\\Structure\\Tables\\Indexes";
                break;

            case "REF CONSTRAINT":
                //NomeDiretorioCriado = @Server.MapPath("") + "\\DseProj\\SinaXX\\ORACLE\\DEV\\ObjetosBanco\\Structure\\Tables\\Foreign Keys".Replace("SinaXX", TeamProject);
                NomeDiretorioCriado = NomeDiretorioCriado + "\\ObjetosBanco\\Structure\\Tables\\Foreign Keys";
                break;

            case "SEQUENCE":
                //NomeDiretorioCriado = @Server.MapPath("") + "\\DseProj\\SinaXX\\ORACLE\\DEV\\ObjetosBanco\\Structure\\Sequences".Replace("SinaXX", TeamProject);
                NomeDiretorioCriado = NomeDiretorioCriado + "\\ObjetosBanco\\Structure\\Sequences";
                break;

            case "TRIGGER":
                //NomeDiretorioCriado = @Server.MapPath("") + "\\DseProj\\SinaXX\\ORACLE\\DEV\\ObjetosBanco\\PL-SQL\\Triggers".Replace("SinaXX", TeamProject);
                NomeDiretorioCriado = NomeDiretorioCriado + "\\ObjetosBanco\\PL-SQL\\Triggers";
                break;
            
            case "VIEW":
                //NomeDiretorioCriado = @Server.MapPath("") + "\\DseProj\\SinaXX\\ORACLE\\DEV\\ObjetosBanco\\Structure\\View".Replace("SinaXX", TeamProject);
                NomeDiretorioCriado = NomeDiretorioCriado + "\\ObjetosBanco\\Structure\\View";
                break;

            case "PACKAGE":
                //NomeDiretorioCriado = @Server.MapPath("") + "\\DseProj\\SinaXX\\ORACLE\\DEV\\ObjetosBanco\\PL-SQL\\Packages\\Specification".Replace("SinaXX", TeamProject);
                NomeDiretorioCriado = NomeDiretorioCriado + "\\ObjetosBanco\\PL-SQL\\Packages\\Specification";
                break;

            case "PACKAGE BODY":
                //NomeDiretorioCriado = @Server.MapPath("") + "\\DseProj\\SinaXX\\ORACLE\\DEV\\ObjetosBanco\\PL-SQL\\Packages\\Body".Replace("SinaXX", TeamProject);
                NomeDiretorioCriado = NomeDiretorioCriado + "\\ObjetosBanco\\PL-SQL\\Packages\\Body";
                break;

            case "IV":
                //NomeDiretorioCriado = @Server.MapPath("") + "\\" + "AA_" + Session.SessionID;
                NomeDiretorioCriado = @Server.MapPath("") + "\\" + "IV";
                break;
        }

        if (Apaga == true)
        {
            ApagaDiretorio(NomeDiretorioCriado);
        }

        if (!Directory.Exists(NomeDiretorioCriado))
        {
            Directory.CreateDirectory(NomeDiretorioCriado);
        }

        return NomeDiretorioCriado;
    }

    public Boolean ApagaDiretorio(String NomeDiretorio)
    {
        Boolean ApagaDiretorio = true;

        if (Directory.Exists(NomeDiretorio))
        {
            Directory.Delete(NomeDiretorio, true);
        }

        return ApagaDiretorio;
    }
}
